//
//  RootViewController.swift
//  swiftweibo
//
//  Created by 吕建发 on 16/5/10.
//  Copyright © 2016年 cn.itcast. All rights reserved.
//

import UIKit

class RootViewController: UIViewController {
    
    
    // 判断用户是否登录
    let userLogon = true
    
    // 懒加载一个tableView
    lazy var tableView = UITableView(frame: CGRectZero, style: .Plain)
    
    lazy var refreshControl = UIRefreshControl()
    
    // 定义上拉加载的视图
    lazy var footerRefresh = UIActivityIndicatorView(activityIndicatorStyle: .White)
    
    // 定义访客视图属性
    var visitorView: VisitorView?
    
    override func loadView() {
        
        userLogon ? prepareTableView() : setUpVisitor()
    }
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        loadData()
    }
    
    
    // MARK: - 公共的加载数据的方法
    func loadData() {
        
    }
    
    
}

// MARK: - 设置视图(访客视图 / tableView)
extension RootViewController {
    
    private func prepareTableView() {
        
        
        view = tableView
        
        tableView.delegate = self
        tableView.dataSource = self
    }

    
    /// 设置访客视图
    private func setUpVisitor(){
        
        visitorView = VisitorView()
        
        visitorView?.delegate = self
        
        view = visitorView
        
        // 设置导航栏
        navigationItem.leftBarButtonItem = UIBarButtonItem(
            title: "注册",
            style: .Plain,
            target: self,
            action: nil)
        navigationItem.rightBarButtonItem = UIBarButtonItem(
            title: "登录",
            style: .Plain,
            target: self,
            action: nil)
    }
    
   
}

// MARK: - 刷新控件的设置 提供给需要刷新功能的子类调用
extension RootViewController{
    
    func setUpRefresh() {
        
        refreshControl.addTarget(self, action: #selector(RootViewController.loadData), forControlEvents: .ValueChanged)
        tableView.addSubview(refreshControl)
        
        
        footerRefresh.color = UIColor.darkGrayColor()
        tableView.tableFooterView = footerRefresh
        
        
        
    }
    
}

// MARK: - : UITableViewDelegate,UITableViewDataSource
extension RootViewController: UITableViewDelegate,UITableViewDataSource{
    
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
    
    // 当即将显示某一个cell的时候调用的代理方法 判断cell是否是最后一个 上拉刷新
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        
        let section = tableView.numberOfSections - 1
        let row = tableView.numberOfRowsInSection(section) - 1
        
        if row == indexPath.row && section == indexPath.section && !footerRefresh.isAnimating(){
            // 是最后一个 启动菊花 开始加载数据
            footerRefresh.startAnimating()
            
            loadData()
        }
        
    }
    
}

// MARK: - VisitorViewDelegate
extension RootViewController: VisitorViewDelegate {
    
    func vistorViewLogin() {
        
        
        
        
    }
    
    func visitorViewRegist() {
        
    }
    
}











